﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace GestorDeFlotasDesktop.Dao
{
    class TurnoDao
    {
        public DataTable Listar(string filterDescripcion)
        {   
            Conexion conexion = new Conexion();
            SqlConnection sqlCon = new SqlConnection(conexion.LeerConexion());
            SqlCommand sqlCommand = new SqlCommand("LOS_BORBOTONES.sp_listar_turno", sqlCon);
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.Parameters.AddWithValue("@descripcion", filterDescripcion);
            try
            {
                SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
                DataTable dataTable = new DataTable();
                sqlDataAdapter.Fill(dataTable);
                return (dataTable);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                sqlCon.Dispose();
                sqlCommand.Dispose();
            }
        }
        public void add(Int32 horaInicio, Int32 horaFin, string descripcion, double valorFicha, double valorBandera)
        {   
            Conexion conexion = new Conexion();
            SqlConnection sqlCon = new SqlConnection(conexion.LeerConexion());
            SqlCommand sqlCommand = new SqlCommand("LOS_BORBOTONES.sp_add_turno", sqlCon);
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.Parameters.AddWithValue("@horaInicio", horaInicio);
            sqlCommand.Parameters.AddWithValue("@horaFin", horaFin);
            sqlCommand.Parameters.AddWithValue("@descripcion", descripcion);
            sqlCommand.Parameters.AddWithValue("@valorFicha", valorFicha);
            sqlCommand.Parameters.AddWithValue("@valorBandera", valorBandera);
            try
            {
                sqlCon.Open();
                sqlCommand.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                sqlCon.Dispose();
                sqlCommand.Dispose();
            }
        }
        public void modificar(Int32 id, Int32 horaInicio, Int32 horaFin, string descripcion, double valorFicha, double valorBandera)
        {
            Conexion conexion = new Conexion();
            SqlConnection sqlCon = new SqlConnection(conexion.LeerConexion());
            SqlCommand sqlCommand = new SqlCommand("LOS_BORBOTONES.sp_modificar_turno", sqlCon);
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.Parameters.AddWithValue("@Id", id);
            sqlCommand.Parameters.AddWithValue("@horaInicio", horaInicio);
            sqlCommand.Parameters.AddWithValue("@horaFin", horaFin);
            sqlCommand.Parameters.AddWithValue("@descripcion", descripcion);
            sqlCommand.Parameters.AddWithValue("@valorFicha", valorFicha);
            sqlCommand.Parameters.AddWithValue("@valorBandera", valorBandera);
            try
            {
                sqlCon.Open();
                sqlCommand.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                sqlCon.Dispose();
                sqlCommand.Dispose();
            }
        }

    }
}
